<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
</head>

<body>
    <script>
        function biaobai(god) {
            return new Promise(resolve => {
                console.log(`邓哥向${god}发出了表白短信`);
                setTimeout(() => {
                    if (Math.random() < 0.2) {
                        resolve(true)
                    } else {
                        resolve(false);
                    }
                }, 500);
            })
        }

        /*
            邓哥心中有三个女神
            有一天，邓哥决定向第一个女神表白，如果女神拒绝，则向第二个女神表白，直到所有的女神都拒绝，或有一个女神同意为止
        */

        const gods = ["女神1", "女神2", "女神3", "女神4", "女神5"];

        let pro = biaobai(gods[0]);    
        for(let i = 0; i < gods.length; i ++) {
            pro = pro.then(result => {
                if(result === undefined) {
                    return;
                }else if(result) {
                    console.log(`${gods[i]}接受了邓哥的表白，邓哥好开心`);
                    return;
                }else{
                    if(i === gods.length - 1) {
                        console.log(`所有女神都拒绝了邓哥的表白`);
                        return;
                    }else{
                        console.log(`${gods[i]}拒绝了邓哥的表白，邓哥继续向${gods[i + 1]}发起表白`);
                        return biaobai(gods[i + 1]);
                    }
                }
            })
        }


        // biaobai(gods[0]).then(result => {
        //     if(result) {
        //         console.log(`${gods[0]}接受了邓哥的表白，邓哥好开心！`);
        //     }else{
        //         console.log(`${gods[0]}拒绝了邓哥的求爱，邓哥继续向${gods[1]}发起表白`);
        //         return biaobai(gods[1]);
        //     }
        // }).then(result => {
        //     if(result === undefined) {
        //         return;
        //     }else if(result) {
        //         console.log(`${gods[1]}接受了邓哥的求爱`);
        //         return;
        //     }else {
        //         console.log(`${gods[1]}也拒绝了邓哥，邓哥并不灰心，继续表白${gods[2]}`);
        //         return biaobai(gods[2]);
        //     }
        // }).then(result => {
        //     if(result === undefined) {
        //         return;
        //     }else if(result) {
        //         console.log(`终于${gods[2]}把邓哥收了，邓哥很快乐`);
        //     }else {
        //         console.log(`${gods[2]}也是有眼无珠，邓哥决定出家了`);
        //     }
        // })

    </script>
</body>

</html>